package cn.tedu.v4;

/**
 *
 * 案例：去WC流程，创建两个线程，两个人去厕所
 *
 */
public class Thread_syn {
    public static void main(String[] args) {
     //创建WC
     WC wc=new WC();
     //创建两个线程
        Thread p1=new Thread(()->{
            wc.go();
        });
        Thread p2=new Thread(()->{
            wc.go();
        });
        //统一启动
        p1.start();
        p2.start();
    }
}
//创建WC
class WC{
    public void go(){//去WC
     Thread t=   Thread.currentThread();
        //获取线程实例：Thread[main,5,main]

            System.out.println(t.getName()+"去厕所...");
        try {//this  指代当前线程--哪条线程先被CPU时间片选中，先被执行
            synchronized (this) {//监视同步对象：先来的线程，立即确定加锁！
                Thread.sleep(5000);
                System.out.println(t.getName()+"找门进去");
            }
            Thread.sleep(3000);
            System.out.println(t.getName()+"穿裤子走人...");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
